//para evitar conflictos entre jQuery y prototype
jQuery.noConflict();

function validar(ev) {
    function ponerError(elem, msj) {
        if(!errores) $(elem).focus()
        errores++
        $(elem).insert({ after: '<span class="error">' + msj + '</span>' })
    }
    function validarFecha(cualFecha) {
        var dia  = $(cualFecha + '_day').value
        var mes  = $(cualFecha + '_month').value
        var agno = $F(cualFecha + '_year')
        if(dia + mes + agno) {
          if((dia) && (mes) && (agno)) {
            if($$('#' + cualFecha + '_day option[value=' + dia + ']').first().disabled) {
              ponerError($(cualFecha + '_day'), 'Día Inválido')
            }
          } else {
            ponerError(cualFecha + '_day', 'Debe indicar la fecha completa')
          }
        } else {
          ponerError(cualFecha + '_year', 'Debe indicar la fecha')
        }
        return agno + (mes<10 ? '0' : '' ) + mes + (dia<10 ? '0' : '') + dia
    }


    $$('.error').invoke('remove')
    var errores=0
    if($F('beca_nombre').length==0) {
        ponerError('beca_nombre','Debe indicar el nombre de la beca')
    }
    if($F('beca_descripcion').length==0) {
        ponerError('beca_descripcion','Debe indicar una descripción')
    }
    if(!$F('beca_monto').length || $F('beca_monto')<=0) {
        ponerError('beca_monto','Debe indicar el monto de la beca')
    }
    var from = validarFecha('beca_fecha_inicio');
    var to = validarFecha('beca_fecha_fin');
    var limite = validarFecha('beca_fecha_limite_inscripcion');
    
    if(!errores && (from>to)) {
      ponerError('beca_fecha_fin_year', 'Rango de fechas inválido')
    }
    if(!errores && (limite>from)) {
      ponerError('beca_fecha_limite_inscripcion_year', 'El límite de inscripcion debe ser anterior al periodo de la beca')
    }    
    if(errores) ev.preventDefault();
}


window.addEventListener('load', function(e) {
      ($$('#sf_admin_content form')[0]).observe('submit', validar)
      $('beca_nombre').select()
    })
